#include <iostream>

using namespace std;

template <typename T> 
class square : public std::unary_function<T, T>{
    public:
        T operator()(T t) const { return t * t;}
};

int main() 
{

    square<int> a;
    cout << a(20) << endl;

    return 0;
}